package com.jzy.dl.common.utils;

import org.springframework.context.ApplicationContext;

/**
 * 
 * 类描述： 获取spring容器内bean 方法1
 * 创建者： jiaozy
 * 项目名称： darkLine
 * 创建时间： 2019年6月20日 上午9:22:51
 * Email：jzy19890914@gmail.com
 */
public class ApplicationContextHelper {
	
	//spring应用环境
	private static ApplicationContext applicationContext;
	
	private static ApplicationContext getApplicationContext() {
        return applicationContext;
	}
	
	public static void setApplicationContext(ApplicationContext context) {
		applicationContext=context;
	}
	
	/**
	 * 
	 * 方法描述 : 根据spring bean的class获取对象
	 * 创建者：jzy 
	 * 项目名称： darkLine
	 * 类名： ApplicationContextHelper.java
	 * 创建时间： 2019年6月20日 上午9:23:21
	 * Email：jzy19890914@gmail.com
	 * @param <T>
	 * @param clazz
	 * @return T
	 */
	public static <T> T getBean(Class<T> clazz){
        return getApplicationContext().getBean(clazz);
	}
	
	/**
	 * 
	 * 方法描述 : 根据spring bean的name获取对象
	 * 创建者：jzy 
	 * 项目名称： darkLine
	 * 类名： ApplicationContextHelper.java
	 * 创建时间： 2019年6月20日 上午9:23:12
	 * Email：jzy19890914@gmail.com
	 * @param name
	 * @return Object
	 */
	public static Object getBean(String name){
        return getApplicationContext().getBean(name);
	}
	
	/**
	 * 
	 * 方法描述 : 根据spring bean的名字和class获取对象
	 * 创建者：jzy 
	 * 项目名称： darkLine
	 * 类名： ApplicationContextHelper.java
	 * 创建时间： 2019年6月20日 上午9:23:03
	 * Email：jzy19890914@gmail.com
	 * @param <T>
	 * @param name
	 * @param clazz
	 * @return T
	 */
	public static <T> T getBean(String name,Class<T> clazz){
        return getApplicationContext().getBean(name,clazz);
	}
}
